package br.unb.ida.midialab.pedparq;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class DBAdapter {
	private SQLiteDatabase database;
	private DbHelper db;
	private String[] allColumns = { 
									DbHelper.ID, 
									DbHelper.USER,
									DbHelper.DATE, 
									DbHelper.TEMPO_ATIVIDADE,
									DbHelper.PASSOS,
									DbHelper.RITMO,
									DbHelper.DISTANCIA,
									DbHelper.CALORIAS,
									DbHelper.VEL_MEDIA,
									DbHelper.STATUS,
									DbHelper.TIPO,
									DbHelper.IS_SYNC};
	
	public DBAdapter(Context context) {
		db = new DbHelper(context);
	}
	
	public Atividade createAtividade(String user, String date, String tempoAtividade,
			String passos,String ritmo, String distancia, String calorias, String velMedia, String status, String tipo, int isSync){
		ContentValues values = new ContentValues();
		values.put(DbHelper.USER, user);
		values.put(DbHelper.DATE, date);
		values.put(DbHelper.TEMPO_ATIVIDADE, tempoAtividade);
		values.put(DbHelper.PASSOS, passos);
		values.put(DbHelper.RITMO, ritmo);
		values.put(DbHelper.DISTANCIA, distancia);
		values.put(DbHelper.CALORIAS, calorias);
		values.put(DbHelper.VEL_MEDIA, velMedia);
		values.put(DbHelper.STATUS, status);
		values.put(DbHelper.TIPO, tipo);
		values.put(DbHelper.IS_SYNC, isSync);
		long insertId = database.insert(DbHelper.TABLE_NAME,
				null, values);
		Cursor cursor = database.query(db.TABLE_NAME, allColumns,
				db.ID + " = " + insertId, null, null, null, null);
		cursor.moveToFirst();

		return cursorToAtividade(cursor);
	}
	
	public void EliminarAtividade(int idAtividade) {
		database.delete(DbHelper.TABLE_NAME, DbHelper.ID + " = " + idAtividade, null);
	}
	
	public Cursor getAtividades() {
		Cursor cursor = database.rawQuery("select _id," +
				"date, user, tempoAtividade, passos, ritmo, distancia, calorias," +
				"velMedia, status, tipo, isSync, from atividades",	null);
		return cursor;
	}
	
	public Atividade getAtividade(int idAtividade) {
		Cursor cursor = database.query(DbHelper.TABLE_NAME, allColumns,
				DbHelper.ID + " = " + idAtividade, null, null, null, null);
		return cursorToAtividade(cursor);
	}
	
	private Atividade cursorToAtividade(Cursor cursor) {
		Atividade atividade = new Atividade(cursor.getString(0), cursor.getString(1), cursor.getLong(2),
				cursor.getLong(3), cursor.getInt(4), cursor.getInt(5),
				cursor.getFloat(6), cursor.getInt(7), cursor.getFloat(8), 
				cursor.getString(9), cursor.getString(10), cursor.getInt(11));
		
		return atividade;
	}
}
